Mathematical programming based debugging

نویسندگان

  • Leo Liberti
  • Stéphane Le Roux
  • Jeremy Leconte
  • Fabrizio Marinelli
چکیده

Verifying that a piece of software has no bugs means proving that it has certain desired properties, such as an array index not taking values outside certain bounds. Abstract interpretation is used in the static analysis of code to establish the inclusion-wise smallest set of values (numerical invariant) that the program variables can attain during program execution. Such sets can be used to detect run-time errors without actually running the program. We present a mathematical program that determines guaranteed smallest interval invariants of computer programs with integer affine arithmetics and compare our results to existing techniques.

برای دانلود رایگان متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید

ثبت نام

اگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید

منابع مشابه

Proving the correctness of algorithmic debugging for functional programs

This paper presents a formal model of tracing for functional programs based on a small-step operational semantics. The model records the computation of a functional program in a graph which can be utilised for various purposes such as algorithmic debugging. The main contribution of this paper is to prove the correctness of algorithmic debugging for functional programs based on the model. Althou...

متن کامل

Debugging and Structural Analysis of Declarative Equation-Based Languages

A significant part of the software development effort is spent on detecting deviations between software implementations and specifications, and subsequently locating the sources of such errors. This thesis illustrates that is possible to identify a significant number of errors during static analysis of declarative object-oriented equation-based modeling languages that are typically used for sys...

متن کامل

Computational Logic in Australia

interpretation is a language-independent theory for static analysis of programs. This theory plays a prominent role in much work in the group, since most sophisticated implementation ideas require static analysis. The work contributes to the theory generally, as well as its applications in functional and logic programming, including sophisticated program transformation. Techniques are also bein...

متن کامل

Applications and extensions of Alloy: past, present and future

Alloy is a declarative language for lightweight modelling and analysis of software. The core of the language is based on first-order relational logic, which offers an attractive balance between analysability and expressiveness. The logic is expressive enough to capture the intricacies of real systems, but is also simple enough to support fully automated analysis with the Alloy Analyzer. The Ana...

متن کامل

Assigning Blame: Mapping Performance to High Level Parallel Programming Abstractions

Parallel programs are increasingly being written using programming frameworks and other environments that allow parallel constructs to be programmed with greater ease. The data structures used allow the modeling of complex mathematical structures like linear systems and partial differential equations using high-level programming abstractions. While this allows programmers to model complex syste...

متن کامل

ذخیره در منابع من


  با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید

عنوان ژورنال:
  • Electronic Notes in Discrete Mathematics

دوره 36  شماره 

صفحات  -

تاریخ انتشار 2010